:root {
  // layout
  --code-padding-x: 1.25rem;
  --code-padding-y: 1rem;
  --code-border-radius: 6px;
  --code-line-height: 1.6;
  --code-font-size: 0.875em;
  --code-font-family: consolas, monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
}

div[class*='language-'] {
  position: relative;

  margin-block: 0.75rem;
  border-radius: var(--code-border-radius);

  background-color: var(--code-c-bg);

  transition:
    background-color var(--vp-t-color),
    color var(--vp-t-color);

  &::before {
    content: attr(data-ext);

    position: absolute;
    top: 0.8em;
    right: 1em;
    z-index: 3;

    color: var(--code-c-text);

    font-size: 0.75rem;
  }

  pre {
    position: relative;
    z-index: 1;

    overflow-x: auto;

    margin: 0;
    border-radius: var(--code-border-radius);

    font-size: var(--code-font-size);
    font-family: var(--code-font-family);
    line-height: var(--code-line-height);

    code {
      display: block;

      box-sizing: border-box;
      width: fit-content;
      min-width: 100%;
      padding: var(--code-padding-y) var(--code-padding-x);

      background-color: transparent !important;
      color: var(--code-c-text);

      overflow-wrap: unset;

      -webkit-font-smoothing: auto;
      -moz-osx-font-smoothing: auto;

      @media print {
        white-space: pre-wrap;
      }
    }
  }
}
